﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Entity.Framework;
using System.Collections;
using Business.Operations;

namespace HPDMAS.UserControls
{
    public partial class KullaniciNufusBilgileri : System.Web.UI.UserControl
    {
        List<KullaniciNfs> kullaniciNfsListesi;
        private KullaniciNfs k;
        public int kullaniciId;
        /// <summary>
        /// Kontroller
        /// </summary>
        public TextBox txtTcKimlikNo;
        public TextBox txtNfsSeri;
        public TextBox txtNfsNo;
        public TextBox txtAdi;
        public TextBox txtSoyadi;
        private DropDownList ddlDogumYeri;
        public TextBox txtDogumTarihi;
        public TextBox txtBabaAdi;
        public TextBox txtAnaAdi;
        public TextBox txtMedeniHali;
        private DropDownList ddlKayitliOlduguIl;
        private DropDownList ddlKayitliOlduguIlce;
        private DropDownList ddlKayitliOlduguMahalle;
        public TextBox txtNfsCiltNo;
        public TextBox txtNfsAileSiraNo;
        public TextBox txtNfsSiraNo;
        public TextBox txtResim;
        /// <summary>
        /// Kontrollere karşılık gelen değişkenler
        /// </summary>
        private string _dogumYeriAdi;
        private int _dogumYeriId;
        private string _kayitliOlduguIlAdi;
        private int _kayitliOlduguIlId;
        private string _kayitliOlduguIlceAdi;
        private int _kayitliOlduguIlceId;
        private string _kayitliOlduguMahalleAdi;
        private int _kayitliOlduguMahalleId;
        private DateTime _dogumTarihi;

        private bool _ilSecildiMi;
        private bool _ilceSecildiMi;
        private bool _mahalleSecildiMi;

        protected void Page_Load(object sender, EventArgs e)
        {
            GelenIdDegeriIleEntityNesnesiniGetir();
            DetailsViewDoldur();
            DetailsViewIcindekiKontrollerinIdleriniGetir();
        }

        private void GelenIdDegeriIleEntityNesnesiniGetir()
        {
            k = KullaniciNfsOperation.KullaniciNfsGetByKullaniciId(kullaniciId);
        }

        private void DetailsViewDoldur()
        {
            kullaniciNfsListesi = new List<KullaniciNfs>();
            kullaniciNfsListesi.Add(k);
            dvKullaniciNufusBilgileri.DataSource = kullaniciNfsListesi;
            DetailsViewBind();
        }

        private void DetailsViewIcindekiKontrollerinIdleriniGetir()
        {
            txtTcKimlikNo = (TextBox)this.dvKullaniciNufusBilgileri.FindControl("txtTcKimlikNo");
            txtNfsSeri = (TextBox)this.dvKullaniciNufusBilgileri.FindControl("txtNfsSeri");
            txtNfsNo = (TextBox)this.dvKullaniciNufusBilgileri.FindControl("txtNfsNo");
            txtAdi = (TextBox)this.dvKullaniciNufusBilgileri.FindControl("txtAdi");
            txtSoyadi = (TextBox)this.dvKullaniciNufusBilgileri.FindControl("txtSoyadi");
            ddlDogumYeri = (DropDownList)this.dvKullaniciNufusBilgileri.FindControl("ddlDogumYeri");
            txtDogumTarihi = (TextBox)this.dvKullaniciNufusBilgileri.FindControl("txtDogumTarihi");
            txtBabaAdi = (TextBox)this.dvKullaniciNufusBilgileri.FindControl("txtBabaAdi");
            txtAnaAdi = (TextBox)this.dvKullaniciNufusBilgileri.FindControl("txtAnaAdi");
            txtMedeniHali = (TextBox)this.dvKullaniciNufusBilgileri.FindControl("txtMedeniHali");
            ddlKayitliOlduguIl = (DropDownList)this.dvKullaniciNufusBilgileri.FindControl("ddlKayitliOlduguIl");
            ddlKayitliOlduguIlce = (DropDownList)this.dvKullaniciNufusBilgileri.FindControl("ddlKayitliOlduguIlce");
            ddlKayitliOlduguMahalle = (DropDownList)this.dvKullaniciNufusBilgileri.FindControl("ddlKayitliOlduguMahalle");
            txtNfsCiltNo = (TextBox)this.dvKullaniciNufusBilgileri.FindControl("txtNfsCiltNo");
            txtNfsAileSiraNo = (TextBox)this.dvKullaniciNufusBilgileri.FindControl("txtNfsAileSiraNo");
            txtNfsSiraNo = (TextBox)this.dvKullaniciNufusBilgileri.FindControl("txtNfsSiraNo");
            txtResim = (TextBox)this.dvKullaniciNufusBilgileri.FindControl("txtResim");
        }

        protected void dvKullaniciNufusBilgileri_DataBound(object sender, EventArgs e)
        {
            if (this.dvKullaniciNufusBilgileri.CurrentMode == DetailsViewMode.Edit)
            {
                ddlDogumYeri = (DropDownList)this.dvKullaniciNufusBilgileri.FindControl("ddlDogumYeri");
                ddlKayitliOlduguIl = (DropDownList)this.dvKullaniciNufusBilgileri.FindControl("ddlKayitliOlduguIl");
                ddlKayitliOlduguIlce = (DropDownList)this.dvKullaniciNufusBilgileri.FindControl("ddlKayitliOlduguIlce");
                ddlKayitliOlduguMahalle = (DropDownList)this.dvKullaniciNufusBilgileri.FindControl("ddlKayitliOlduguMahalle");

                ddlKayitliOlduguIl.SelectedIndexChanged += new EventHandler(ddlKayitliOlduguIl_SelectedIndexChanged);
                ddlKayitliOlduguIlce.SelectedIndexChanged += new EventHandler(ddlKayitliOlduguIlce_SelectedIndexChanged);
                ddlKayitliOlduguMahalle.SelectedIndexChanged += new EventHandler(ddlKayitliOlduguMahalle_SelectedIndexChanged);

                if (ddlDogumYeri != null)
                {
                    ddlDogumYeriDoldur();
                    ddlDogumYeri.SelectedValue = SehirOperation.DogumYeriAdiGetByKullaniciId(kullaniciId);
                }

                if (ddlKayitliOlduguIl != null)
                {
                    ddlKayitliOlduguIlDoldur();

                    if (_ilSecildiMi == false)
                    {
                        //ddlKayitliOlduguIl.SelectedValue = SehirOperation.KayitliOlduguIlAdiGetByKullaniciId(_kullaniciId);
                    }
                }

                if (ddlKayitliOlduguIlce != null)
                {
                    ddlKayitliOlduguIlceDoldur();
                    if (_ilceSecildiMi == false)
                    {
                        //ddlKayitliOlduguIlce.SelectedValue = IlceOperation.IlceAdiGetByKullaniciId(_kullaniciId);
                    }
                }

                if (ddlKayitliOlduguMahalle != null)
                {
                    ddlKayitliOlduguMahalleDoldur();
                    if (_mahalleSecildiMi == false)
                    {
                        //ddlKayitliOlduguMahalle.SelectedValue = MahalleOperation.MahalleAdiGetByKullaniciId(_kullaniciId);
                    }
                }
            }
        }

        private void ddlDogumYeriDoldur()
        {
            ddlDogumYeri.DataSource = SehirOperation.SehirAdiGetAll();
            ddlDogumYeri.DataBind();
        }

        private void ddlKayitliOlduguIlDoldur()
        {
            ddlKayitliOlduguIl.DataSource = SehirOperation.SehirAdiGetAll();
            ddlKayitliOlduguIl.DataBind();
        }

        private void ddlKayitliOlduguIlceDoldur()
        {
            _kayitliOlduguIlAdi = ddlKayitliOlduguIl.SelectedItem.Value;
            _kayitliOlduguIlId = SehirOperation.SehirIdGetBySehirAdi(_kayitliOlduguIlAdi);
            ddlKayitliOlduguIlce.DataSource = IlceOperation.IlceAdiGetBySehirId(Convert.ToString(_kayitliOlduguIlId));
            ddlKayitliOlduguIlce.DataBind();
        }

        private void ddlKayitliOlduguMahalleDoldur()
        {
            _kayitliOlduguIlceAdi = ddlKayitliOlduguIlce.SelectedItem.Value;
            _kayitliOlduguIlceId = IlceOperation.IlceIdGetByIlceAdiAndSehirId(_kayitliOlduguIlceAdi, Convert.ToString(_kayitliOlduguIlId));
            ddlKayitliOlduguMahalle.DataSource = MahalleOperation.MahalleAdiGetByIlceId(Convert.ToString(_kayitliOlduguIlceId));
            ddlKayitliOlduguMahalle.DataBind();
        }

        protected void dvKullaniciNufusBilgileri_ItemUpdating(object sender, DetailsViewUpdateEventArgs e)
        {
            KullaniciNfsBilgileriGuncelle();
            DuzenlemeModundanListelemeModunaGeç();
        }

        private void DuzenlemeModundanListelemeModunaGeç()
        {
            dvKullaniciNufusBilgileri.ChangeMode(DetailsViewMode.ReadOnly);
            DetailsViewBind();
        }

        private void KullaniciNfsBilgileriGuncelle()
        {
            _dogumYeriAdi = ddlDogumYeri.SelectedValue;
            _dogumYeriId = SehirOperation.SehirIdGetBySehirAdi(_dogumYeriAdi);

            _kayitliOlduguMahalleAdi = ddlKayitliOlduguMahalle.SelectedValue;
            _kayitliOlduguMahalleId = MahalleOperation.MahalleIdGetByMahalleAdiAndIlceIdAndSehirId(_kayitliOlduguMahalleAdi, Convert.ToString(_kayitliOlduguIlceId), Convert.ToString(_kayitliOlduguIlId));

            if (txtDogumTarihi.Text != "")
            {
                try
                {
                    _dogumTarihi = DateTime.Parse(txtDogumTarihi.Text.Trim());
                    k.KullaniciNfsDogumTarihi = _dogumTarihi;
                }
                catch (Exception)
                {
                    k.KullaniciNfsDogumTarihi = null;
                }
            }
            else 
            {
                k.KullaniciNfsDogumTarihi = null;
            }

            k.KullaniciID = kullaniciId;
            k.KullaniciNfsTCKimlikNo = txtTcKimlikNo.Text.Trim();
            k.KullaniciNfsSeri = txtNfsSeri.Text.Trim();
            k.KullaniciNfsNo = txtNfsNo.Text.Trim();
            k.KullaniciNfsAdi = txtAdi.Text.Trim();
            k.KullaniciNfsSoyadi = txtSoyadi.Text.Trim();
            k.KullaniciNfsDogumYeriID = _dogumYeriId;
            k.KullaniciNfsBabaAdi = txtBabaAdi.Text.Trim();
            k.KullaniciNfsAnaAdi = txtAnaAdi.Text.Trim();
            k.KullaniciNfsMedeniHali = txtMedeniHali.Text.Trim();
            k.KullaniciNfsKayitliOlduguIlID = _kayitliOlduguIlId;
            k.KullaniciNfsKayitliOlduguIlceID = _kayitliOlduguIlceId;
            k.KullaniciNfsKayitliOlduguMahalleKoyID = _kayitliOlduguMahalleId;
            k.KullaniciNfsCiltNo = txtNfsCiltNo.Text.Trim();
            k.KullaniciNfsAileSiraNo = txtNfsAileSiraNo.Text.Trim();
            k.KullaniciNfsSiraNo = txtNfsSiraNo.Text.Trim();
            k.DegisiklikTarihi = DateTime.Now;
            KullaniciNfsOperation.KullaniciNfsUpdate(k);
        }

        protected void dvKullaniciNufusBilgileri_ModeChanging(object sender, DetailsViewModeEventArgs e)
        {
            if (e.NewMode == DetailsViewMode.Edit)
            {
                dvKullaniciNufusBilgileri.ChangeMode(DetailsViewMode.Edit);
            }
            else if (e.NewMode == DetailsViewMode.Insert)
            {
                dvKullaniciNufusBilgileri.ChangeMode(DetailsViewMode.Insert);
            }
            else
            {
                dvKullaniciNufusBilgileri.ChangeMode(DetailsViewMode.ReadOnly);
            }

            DetailsViewBind();
        }

        private void DetailsViewBind()
        {
            dvKullaniciNufusBilgileri.DataBind();
        }

        protected void ddlKayitliOlduguIl_SelectedIndexChanged(object sender, EventArgs e)
        {
            ddlKayitliOlduguIlce.Items.Clear();
            ddlKayitliOlduguIlceDoldur();
            _ilSecildiMi = true;
        }

        protected void ddlKayitliOlduguIlce_SelectedIndexChanged(object sender, EventArgs e)
        {
            ddlKayitliOlduguMahalle.Items.Clear();
            ddlKayitliOlduguMahalleDoldur();
            _ilceSecildiMi = true;
        }

        protected void ddlKayitliOlduguMahalle_SelectedIndexChanged(object sender, EventArgs e)
        {
            _mahalleSecildiMi = true;
        }


    }
}